package main

import "fmt"
	// "errors"
// import"fmt"
import "time"
// import"strconv"
import "strings"
// import"main"



//"testproject01/util"
// func getSum()func (int)int{
// 	var sum int = 0
// 	return func (num int)int{
// 		sum = sum + num
// 		return sum
// 	}
// }

// // var age int = test()
// // func init(){
// // 	fmt.Println("执行了init函数")
// // }
// // func main(){
// // 	fmt.Println("执行了main函数")
// // }
// func main(){
// 	// func(num1 int,num2 int)int{
// 	// 	return num1 +num2
// 	// }(10,20)
// 	// fmt.Println(result)
// 	f :=getSum()
// 	fmt.Println(f(1))
// 	fmt.Println(f(2))
// 	fmt.Println(f(3))
// }
// func main(){
// // 	//程序遇到defer关键字，不会立即执行defer 后的语句，而是将defer后的语句压入一个栈中，然后继续执行后面的语句，直到整个函数执行完后再将栈中的语句取出
// // 	//栈的特点是：先进后出
// // 	defer fmt.Println("a")
// // 	defer fmt.Println("b")
// // 	defer fmt.Println("f")
// // 	defer fmt.Println("e")
// // 	fmt.Println("c")
// }
// func test(){
// 	str1 :="golang你好"
// 	//统计字符串的长度，按字节进行统计，(一个英文占一个字节，中文占三个字节)这个函数是内置函数，所以不用导包
// 	// num1 := len(str1)
// 	// fmt.Println(num1)


// 	//字符串遍历
// 	//方式一：for range
// 	//使用for range 遍历str1
// 	for i,value := range str1 {
// 		fmt.Printf("索引为，%d,具体的值为:%c \n",i,value)

// 	//方式二
// 	// r := []rune(str1)
// 	// for i := 0 ; i < len(r) ; i++ {
// 	// 	fmt.Printf("%c \n",r[i])
// 	// }


// 	//字符串转整数
// 	// num2,_ :=strconv.Atoi("66")
// 	// fmt.Println(num2)

// 	// //整数转字符串
// 	// str2 := strconv.Itoa(88)
// 	// fmt.Println(str2)

// 	// //查找子串是否在指定的字符串中
// 	// flag1 := strings.Contains("golangoandgo","go")
// 	// fmt.Println(flag1)

// 	// //统计一个字符串有几个指定的子串
// 	// num3 := strings.Count("golangoandgo","go")
// 	// fmt.Println(num3)

// 	// //不区分大小写的字符串比较
// 	// flag2 := strings.EqualFold("hello","HELLO")
// 	// fmt.Println(flag2)

// 	// //区分大小写的字符串比较
// 	// flag3 :="hello" == "HELLO"
// 	// fmt.Println(flag3)

// 	// //返回子串在字符串中第一次出现的索引值
// 	// num4 := strings.Index("golangoandgo","la")
// 	// fmt.Println(num4)

// 	//字符串的替换:最后一个参数表示要替换几个，为-1的表示全部替换
// 	str3 := strings.Replace("golangoandgo","go","python",2)
// 	fmt.Println(str3)

// 	//按照指定的某个字符为分割标识。将一个字符串拆分成字符串数组
// 	arr := strings.Split("hello-world-golang","-")
// 	fmt.Println(arr)
// }

// 	// // 时间和日期的函数，需要导入time包，要获得当前时间，就要调用Now函数
// 	now := time.Now()
// 	// fmt.Printf("年：%v \n",now.Year())
// 	// fmt.Printf("月：%v \n",now.Month())
// 	// fmt.Printf("月：%v \n",int(now.Month()))
// 	// fmt.Printf("日：%v \n",now.Day())
// 	// fmt.Printf("时：%v \n",now.Hour())
// 	// fmt.Printf("分：%v \n",now.Minute())
// 	// fmt.Printf("秒：%v \n",now.Second())
// 	// //Printf将字符串直接输出
// 	// fmt.Printf("当前年月日：%d-%d-%d,时分秒：%d:%d:%d \n",now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())
// 	// //Sprintf可以将这个字符串存入一个变量中，方便后续使用
// 	date01 := fmt.Sprintf("当前年月日：%d-%d-%d,时分秒：%d:%d:%d \n",now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())
// 	fmt.Println(date01)

// 	//按照指定格式
// 	data02 := now.Format("2006/01/02 15/04/05")
// 	fmt.Println(data02)
// 	data03 := now.Format("2006 15:04")
// 	fmt.Println(data03)

// // 	defer func(){
// // 		//调用recover内置函数，可以捕获错误
// // 		err := recover()
// // 		//如果没有错误，返回值为零值：nil
// // 		if err != nil{
// // 			fmt.Println("错误是：",err)
// // 		}
// // 	}()
// // 	num1 := 10
// // 	num2 := 0
// // 	fmt.Println(num1 / num2)
// // }
// // 	func main(){
// // 		test()
// // 		fmt.Println("test函数执行后的输出语句")
// // 	}

// // func test()(err error){
// // 	num1 := 10
// // 	num2 := 0
// // 	if num2 == 0 {
// // 		//抛出自定义错误
// // 		return errors.New("除数不能为0")
// // 	} else{
// // 		fmt.Println(num1 / num2)
// // 		//如果没有错误，要记得返回零值：nil
// // 		return nil
// // 	}
// // }

// // func main (){
// // 	err := test()
// // 	if err != nil{
// // 	//有错误
// // 	fmt.Println("自定义错误：",err)
// // 	panic(err)
// // 	}
// // 	fmt.Println("test函数执行后的输出语句")
// }

func main(){
	str3 := strings.Replace("golangoandgo","go","python",2)
		fmt.Println(str3)
		arr := strings.Split("hello-world-golang","-")
		fmt.Println(arr)
		str1 :="golang你好"
		for i,value := range str1 {
			fmt.Printf("索引为，%d,具体的值为:%c \n",i,value)
}
	now := time.Now()
	fmt.Printf("当前年月日：%d-%d-%d,时分秒：%d:%d:%d \n",now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())

}





































